﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp6
{
//1、定义一个方法，求一个整数数组中的最大值，最小值，和，平均数。
//如果是一个方法只能有一个返回值，那只能每一个都得定义一个方法来实现，不过有了ref和out这实现起来就方便多了。
//参考步骤：
//定义一个一维数组，数组中存放一些数据（控制台输入）。
//定义几个变量：max、min、sum、avg
//定义一个方法，方法返回数组元素之和,方法形参有max min avg。
//请用ref和out各做一遍，并在注释中，描述他们的区别。
    class Demo04
    {
        static void Main(string[] args)
        {//ref
            int[] arr = { 15, 25, 35, 45, 55 };
            int max1 = arr[0];
            int min1 = arr[0];
            int avg1 = 0;
            int sum1 = Count1(arr , ref max1 , ref min1, ref avg1);
            Console.WriteLine("max:{0}",max1);
            Console.WriteLine("min:{0}",min1);
            Console.WriteLine("sum:{0}",sum1);
            Console.WriteLine("avg:{0}",avg1);
            Console.WriteLine();

            //out
            int[] brr = { 05,65, 75, 85, 95 };
            int max2;
            int min2;
            int avg2;
            int sum2 = Count2(brr, out max2, out min2, out avg2);
            Console.WriteLine("max:(0)",max2);
            Console.WriteLine("min:(0)",min2);
            Console.WriteLine("sum:(0)",sum2);
            Console.WriteLine("avg:(0)",avg2);
        }
        static int Count1(int[] arr, ref int max1, ref int min1, ref int avg1)
        {
            int sum1 = 0;
            for(int i = 0 ; i < arr.Length;i++)
            {
                if (arr[i] > max1)
                {
                    max1 = arr[i];
                }
                if (arr[i] < min1)
                {
                    min1 = arr[i];
                }
                sum1 += arr[i];
            }
            avg1 = (sum1 / arr.Length);
            return sum1;
        }
        static int Count2(int[] brr, out int max2, out int min2, out int avg2)
        {
            int sum2 = 0;
            max2 = brr[0];
            min2 = brr[0];
            for (int i = 0; i < brr.Length; i++)
            {
                if (brr[i] > max2)
                {
                    max2 = brr[i];
                }
                if (brr[i] < min2)
                {
                    min2 = brr[i];
                }
                sum2 += brr[i];
            }
            avg2 = (sum2 / brr.Length);
            return sum2;
        }
    }
    }
